Within large business enterprises, management of business processes is becoming a more significant issue as companies vie to improve efficiency, reduce costs, increase profits and gain more flexible and dynamic infrastructures. Business processes are a part of the day-to-day operations and services of any corporation. In this context, a business process can be thought of as a series of steps (tasks) that are executed in a particular order or path in order to achieve an objective in an organization. For example, a business process may include applying for a home loan (e.g. loan origination process), starting a mobile phone service (account initiation process), hiring a new employee (employee on-boarding process), building a new jet engine (parts and assembly process), as well as countless other processes performed by enterprises and organizations in order to accomplish specific goals. Processes can range from very simple to highly complex and sophisticated, involving numerous decisions, tasks and activities. A business process can be visualized as a flowchart of a sequence of activities. Business processes often change over time and are useful for analyzing and optimizing the business model of a particular organization.
Various software systems have been developed to enable business processes to be defined in a computer language that can be directly executed by a computer. These systems use automated applications in conjunction with human based tasks to graphically construct, deploy and execute business processes, as well as maintain, analyze and modify them over time. Compared to previous approaches, using such automated software systems to directly execute processes can be more straightforward and easier to improve. Accordingly, more and more organizations are using software business process systems to integrate the data, applications and processes into a unified system.
As one example, business process execution language (BPEL) has been developed to define business processes that use Web Services to interact with other entities. BPEL is a standard executable orchestration language that specifies interactions with Web Services. The BPEL processes are represented in extensible markup language (XML) and these processes orchestrate synchronous and asynchronous services into end-to-end flows. By implementing software tools like BPEL, enterprises are able to increase productivity, performance, profits, decrease inefficiency due to various factors and otherwise optimize various tasks.
Even with the rising popularity of BPEL based and other similar systems (e.g. BPMN), however, there exists a multitude of shortcomings and other needs in this area of technology. For example, designing a process in such a system typically involves designating both automated tasks and human oriented tasks as part of the overall workflow. Thus, in many of these scenarios, human tasks approvals have to be intermixed with automated activities. When such mixing of automated activities and human tasks occur, human approvals lose context of the previous human actions. In the past, business process systems separated approvals without the context of the previous approvals. However, this could result in loss in history of the task and data such as coments and attachments in the previous human task approval. Other systems had customers copy such data in the process or client implementation, adding more complexity and work on the part of the user. What is needed is a more dynamic and automated system that can carry the context of human tasks throughout chained processes in an efficient manner.